home *** CD-ROM | disk | FTP | other *** search
/ Aminet 33 / Aminet 33 - October 1999.iso / Aminet / dev / cross / ava-0.2.5.lha / ava-0.2.5 / avalib / avr / 8535def.inc < prev    next >
Encoding:
Text File  |  1999-03-23  |  6.9 KB  |  360 lines

  1. ;***************************************************************************
  2. ;* A P P L I C A T I O N   N O T E   F O R   T H E   A V R   F A M I L Y
  3. ;* 
  4. ;* Number        :AVR000
  5. ;* File Name        :"8535def.inc"
  6. ;* Title        :Register/Bit Definitions for the AT90S8535
  7. ;* Date                 :98.05.22
  8. ;* Version              :1.22
  9. ;* Target MCU        :AT90S8535
  10. ;*
  11. ;* DESCRIPTION
  12. ;* When including this file in the assembly program file, all I/O register    
  13. ;* names and I/O register bit names appearing in the data book can be used.
  14. ;* In addition, the six registers forming the three data pointers X, Y and
  15. ;* Z have been assigned names XL - ZH. Highest RAM address for Internal 
  16. ;* SRAM is also defined 
  17. ;*
  18. ;* The Register names are represented by their hexadecimal address.
  19. ;* 
  20. ;* The Register Bit names are represented by their bit number (0-7).
  21. ;* 
  22. ;* Please observe the difference in using the bit names with instructions
  23. ;* such as "sbr"/"cbr" (set/clear bit in register) and "sbrs"/"sbrc" 
  24. ;* (skip if bit in register set/cleared). The following example illustrates
  25. ;* this:
  26. ;* 
  27. ;* in    r16,PORTB        ;read PORTB latch
  28. ;* sbr    r16,(1<<PB6)+(1<<PB5)    ;set PB6 and PB5 (use masks, not bit#)
  29. ;* out  PORTB,r16        ;output to PORTB
  30. ;*
  31. ;* in    r16,TIFR        ;read the Timer Interrupt Flag Register
  32. ;* sbrc    r16,TOV0        ;test the overflow flag (use bit#)
  33. ;* rjmp    TOV0_is_set        ;jump if set
  34. ;* ...                ;otherwise do something else
  35. ;***************************************************************************
  36.  
  37. ;***** I/O Register Definitions
  38. #define    SREG     $3f
  39. #define    SPH     $3e
  40. #define    SPL     $3d
  41. #define    GIMSK     $3b
  42. #define    GIFR     $3a
  43. #define    TIMSK     $39
  44. #define    TIFR     $38
  45.  
  46. #define    MCUCR     $35
  47. #define    MCUSR     $34
  48.  
  49. #define    TCCR0     $33
  50. #define    TCNT0     $32
  51.  
  52. #define    TCCR1A     $2f
  53. #define    TCCR1B     $2e
  54. #define    TCNT1H     $2d
  55. #define    TCNT1L     $2c
  56. #define    OCR1AH     $2b
  57. #define    OCR1AL     $2a
  58. #define    OCR1BH     $29
  59. #define    OCR1BL     $28
  60. #define    ICR1H     $27
  61. #define    ICR1L     $26
  62.  
  63. #define    TCCR2     $25
  64. #define    TCNT2     $24
  65. #define    OCR2     $23
  66. #define    ASSR     $22
  67.  
  68. #define    WDTCR     $21
  69. #define    EEARH     $1f
  70. #define    EEARL     $1e
  71. #define    EEDR     $1d
  72. #define    EECR     $1c
  73. #define    PORTA     $1b
  74. #define    DDRA     $1a
  75. #define    PINA     $19
  76. #define    PORTB     $18
  77. #define    DDRB     $17
  78. #define    PINB     $16
  79. #define    PORTC     $15
  80. #define    DDRC     $14
  81. #define    PINC     $13
  82. #define    PORTD     $12
  83. #define    DDRD     $11
  84. #define    PIND     $10
  85. #define    SPDR     $0f
  86. #define    SPSR     $0e
  87. #define    SPCR     $0d
  88. #define    UDR     $0c
  89. #define    USR     $0b
  90. #define    UCR     $0a
  91. #define    UBRR     $09
  92. #define    ACSR     $08
  93. #define    ADMUX    $07
  94. #define    ADCSR    $06
  95. #define    ADCH     $05
  96. #define    ADCL     $04
  97.  
  98.  
  99. ;***** Bit Definitions
  100.  
  101. #define    EXTRF     1
  102. #define    PORF     0
  103.  
  104. #define    INT1     7
  105. #define    INT0     6
  106.  
  107. #define    INTF1     7
  108. #define    INTF0     6
  109.  
  110. #define    OCIE2     7
  111. #define    TOIE2     6
  112. #define    TICIE1     5
  113. #define    OCIE1A     4
  114. #define    OCIE1B     3
  115. #define    TOIE1     2
  116. #define    TOIE0     0
  117.  
  118. #define    OCF2     7
  119. #define    TOV2     6
  120. #define    ICF1     5
  121. #define    OCF1A     4
  122. #define    OCF1B     3
  123. #define    TOV1     2
  124. #define    TOV0     0
  125.  
  126. #define    SE     6
  127. #define    SM1     5
  128. #define    SM0     4
  129. #define    ISC11     3
  130. #define    ISC10     2
  131. #define    ISC01     1
  132. #define    ISC00     0
  133.  
  134. #define    CS02     2
  135. #define    CS01     1
  136. #define    CS00     0
  137.  
  138. #define    COM1A1     7
  139. #define    COM1A0     6
  140. #define    COM1B1     5
  141. #define    COM1B0     4
  142. #define    PWM11     1
  143. #define    PWM10     0
  144.  
  145. #define    ICNC1     7
  146. #define    ICES1     6
  147. #define    CTC1     3
  148. #define    CS12     2
  149. #define    CS11     1
  150. #define    CS10     0
  151.  
  152. #define    PWM2     6
  153. #define    COM21     5
  154. #define    COM20     4
  155. #define    CTC2     3
  156. #define    CS22     2
  157. #define    CS21     1
  158. #define    CS20     0
  159.  
  160. #define    AS2     3
  161. #define    TCN2UB     2
  162. #define    OCR2UB     1
  163. #define    TCR2UB     0
  164.  
  165. #define    WDDE     4
  166. #define    WDE     3
  167. #define    WDP2     2
  168. #define    WDP1     1
  169. #define    WDP0     0
  170.  
  171. #define    EERIE     3
  172. #define    EEMWE     2
  173. #define    EEWE     1
  174. #define    EERE     0
  175.  
  176. #define    PA7     7
  177. #define    PA6     6
  178. #define    PA5     5
  179. #define    PA4     4
  180. #define    PA3     3
  181. #define    PA2     2
  182. #define    PA1     1
  183. #define    PA0     0
  184.  
  185. #define    DDA7     7
  186. #define    DDA6     6
  187. #define    DDA5     5
  188. #define    DDA4     4
  189. #define    DDA3     3
  190. #define    DDA2     2
  191. #define    DDA1     1
  192. #define    DDA0     0
  193.  
  194. #define    PINA7     7
  195. #define    PINA6     6
  196. #define    PINA5     5
  197. #define    PINA4     4
  198. #define    PINA3     3
  199. #define    PINA2     2
  200. #define    PINA1     1
  201. #define    PINA0     0
  202.  
  203. #define    PB7     7
  204. #define    PB6     6
  205. #define    PB5     5
  206. #define    PB4     4
  207. #define    PB3     3
  208. #define    PB2     2
  209. #define    PB1     1
  210. #define    PB0     0
  211.  
  212. #define    DDB7     7
  213. #define    DDB6     6
  214. #define    DDB5     5
  215. #define    DDB4     4
  216. #define    DDB3     3
  217. #define    DDB2     2
  218. #define    DDB1     1
  219. #define    DDB0     0
  220.  
  221. #define    PINB7     7
  222. #define    PINB6     6
  223. #define    PINB5     5
  224. #define    PINB4     4
  225. #define    PINB3     3
  226. #define    PINB2     2
  227. #define    PINB1     1
  228. #define    PINB0     0
  229.  
  230. #define    PC7     7
  231. #define    PC6     6
  232. #define    PC5     5
  233. #define    PC4     4
  234. #define    PC3     3
  235. #define    PC2     2
  236. #define    PC1     1
  237. #define    PC0     0
  238.  
  239. #define    DDC7     7
  240. #define    DDC6     6
  241. #define    DDC5     5
  242. #define    DDC4     4
  243. #define    DDC3     3
  244. #define    DDC2     2
  245. #define    DDC1     1
  246. #define    DDC0     0
  247.  
  248. #define    PINC7     7
  249. #define    PINC6     6
  250. #define    PINC5     5
  251. #define    PINC4     4
  252. #define    PINC3     3
  253. #define    PINC2     2
  254. #define    PINC1     1
  255. #define    PINC0     0
  256.  
  257. #define    PD7     7
  258. #define    PD6     6
  259. #define    PD5     5
  260. #define    PD4     4
  261. #define    PD3     3
  262. #define    PD2     2
  263. #define    PD1     1
  264. #define    PD0     0
  265.  
  266. #define    DDD7     7
  267. #define    DDD6     6
  268. #define    DDD5     5
  269. #define    DDD4     4
  270. #define    DDD3     3
  271. #define    DDD2     2
  272. #define    DDD1     1
  273. #define    DDD0     0
  274.  
  275. #define    PIND7     7
  276. #define    PIND6     6
  277. #define    PIND5     5
  278. #define    PIND4     4
  279. #define    PIND3     3
  280. #define    PIND2     2
  281. #define    PIND1     1
  282. #define    PIND0     0
  283.  
  284. #define    SPIE     7
  285. #define    SPE     6
  286. #define    DORD     5
  287. #define    MSTR     4
  288. #define    CPOL     3
  289. #define    CPHA     2
  290. #define    SPR1     1
  291. #define    SPR0     0
  292.  
  293. #define    SPIF     7
  294. #define    WCOL     6
  295.  
  296. #define    RXC     7
  297. #define    TXC     6
  298. #define    UDRE     5
  299. #define    FE     4
  300. #define    OR     3
  301.  
  302. #define    RXCIE     7
  303. #define    TXCIE     6
  304. #define    UDRIE     5
  305. #define    RXEN     4
  306. #define    TXEN     3
  307. #define    CHR9     2
  308. #define    RXB8     1
  309. #define    TXB8     0
  310.  
  311. #define    ACD     7
  312. #define    ACO     5
  313. #define    ACI     4
  314. #define    ACIE     3
  315. #define    ACIC     2
  316. #define    ACIS1     1
  317. #define    ACIS0     0
  318.  
  319. #define    MUX2     2
  320. #define    MUX1     1
  321. #define    MUX0     0
  322.  
  323. #define    ADEN     7
  324. #define    ADSC     6
  325. #define    ADFR     5
  326. #define    ADIF     4
  327. #define    ADIE     3
  328. #define    ADPS2     2
  329. #define    ADPS1     1
  330. #define    ADPS0     0
  331.  
  332. #define    XL     r26
  333. #define    XH     r27
  334. #define    YL     r28
  335. #define    YH     r29
  336. #define    ZL     r30
  337. #define    ZH     r31
  338.  
  339. #define     RAMEND   $25F    ;Last On-Chip SRAM location
  340. #define    XRAMEND  $25F
  341. #define    E2END     $1FF
  342. #define    FLASHEND $FFF
  343.  
  344. #define    INT0addr $001    ;External Interrupt0 Vector Address
  345. #define    INT1addr $002    ;External Interrupt1 Vector Address
  346. #define    OC2addr  $003    ;Timer2 compare match Vector Address
  347. #define    OVF2addr $004    ;Timer2 overflow Vector Address
  348. #define    ICP1addr $005    ;Timer1 Input Capture Vector Address
  349. #define    OC1Aaddr $006    ;Timer1 Output Compare A Interrupt Vector Address
  350. #define    OC1Baddr $007    ;Timer1 Output Compare B Interrupt Vector Address
  351. #define    OVF1addr $008    ;Overflow1 Interrupt Vector Address
  352. #define    OVF0addr $009    ;Overflow0 Interrupt Vector Address
  353. #define    SPIaddr  $00A    ;SPI Interrupt Vector Address
  354. #define    URXCaddr $00B    ;UART Receive Complete Interrupt Vector Address
  355. #define    UDREaddr $00C    ;UART Data Register Empty Interrupt Vector Address
  356. #define    UTXCaddr $00D    ;UART Transmit Complete Interrupt Vector Address
  357. #define    ADCCaddr $00E    ;ADC Conversion Complete Interrupt Vector Address
  358. #define    ERDYaddr $00F    ;EEPROM Write Complete Interrupt Vector Address
  359. #define    ACIaddr  $010    ;Analog Comparator Interrupt Vector Address
  360.